#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>

int g_val = 100;
int main()
{
    printf("Father process is running, pid: %d, ppid: %d\n", getpid(),getppid());
    pid_t id = fork();
    if(id == 0)
    {
        //child:
        int cnt = 0;
        while(1)
        {
            printf("I am child  process, pid: %d, ppid: %d, g_val: %d, &g_val: %p\n",getpid(),getppid(),g_val,&g_val);
            sleep(1);
            cnt++;
            if(cnt == 5)
            {
                int tmp = g_val;
                g_val = 300;
                printf("I am child process. Change value of g_val: %d->%d\n", tmp, g_val);
            }
        }
    }
    else 
    {
        //father:
        while(1)
        {
            printf("I am father process, pid: %d, ppid: %d, g_val: %d, &g_val: %p\n",getpid(),getppid(),g_val,&g_val);
            sleep(1);
        }
    }
    return 0;
}
